package myjava.p_classLoader;

/**
 * @Auther: cty
 * @Date: 2020/4/14 18:47
 * @Description: 测试类加载器的层次结构、双亲委托机制
 * @version: 1.0
 */

public class Demo02 {
    public static void main(String[] args) {
        System.out.println(ClassLoader.getSystemClassLoader());  // jdk.internal.loader.ClassLoaders$AppClassLoader@3fee733d
        System.out.println(ClassLoader.getSystemClassLoader().getParent());  // jdk.internal.loader.ClassLoaders$PlatformClassLoader@723279cf
        System.out.println(ClassLoader.getSystemClassLoader().getParent().getParent());   //null （bootstrapClassLoader是C++写的，无法调用）
        System.out.println(System.getProperty("java.class.path"));

        System.out.println("################");
        String a = "cty";
        System.out.println(a.getClass().getClassLoader());  // null (String类也是在bootstrapClassLoader中加载的)
        System.out.println(a);
    }
}

/* res: 2020年4月14日
jdk.internal.loader.ClassLoaders$AppClassLoader@3fee733d
jdk.internal.loader.ClassLoaders$PlatformClassLoader@723279cf
null
E:\JAVAXX\IdeaProjects\JavaPro\ClassLoader\target\classes
################
null
cty
*/